Den här frågan har redan svar här: Hur returnerar jag svaret från ett asynkront samtal? (42 svar) Stängt för 5 månader sedan. Så när du kör följande kod är svaret från console.log (ba) odefinierat Men när jag provar detta i Chrome V8-konsolen får jag rätt utdata som jag förväntar mig. Jag är inte helt säker på vad som händer här. låt ba; funktion Setqa () { (async () => { väntar på att hämta ('frågor.json') .then (res => res.json ()) .then (async (data) => { ba = väntar på data; }); }) (); } Setqa (); console.log (ba); Innehållet i json-filen är följande: "frågor": [{ "questionType": "flera", "fråga": "Hur är vädret", "svar": "", "fråga Svar": "" }, { "questionType": "flera", "fråga": "Hur mår du idag?", "svar": " 1", "questionAnswer": "textPurpose1" } ]
2021-02-27 08:13:43
Jag antar att det borde fungera låt ba; funktion Setqa () { returnera hämtning ('frågor.json') .then (res => res.json ()) .then (async (data) => { ba = väntar på data; }); } Setqa (). Sedan (() => console.log (ba)); Men ett bättre tillvägagångssätt skulle vara async-funktion setQa () { const res = väntar på hämtning ('questions.json'); returnera res.json (); } låt ba = vänta på setQa (); | Inte svaret du letar efter? Bläddra bland andra frågor taggade javascript json hämta console.log eller ställ din egen fråga.